Saltar al contenido principal

Capas de la Malla Societaria

Este endpoint recorre la malla societaria de un RUT nivel por nivel y devuelve, paginadas, las relaciones de participación del nivel que solicites. Así puedes reconstruir la estructura de propiedad completa (socios de socios) sin traer toda la malla en una sola llamada.

  • Consultar un RUT ya cargado en tu cuenta no genera costos adicionales.
  • El RUT debe estar cargado en tu cuenta antes de la consulta (ver Carga de RUT).
  • Requiere que tu plan incluya el ayudante Legal.
  • Para saber cuántos niveles tiene la malla y cuántas relaciones hay en cada uno, usa Niveles de la Malla Societaria.

Cómo se construyen los niveles​

  • Nivel 1: las relaciones directas del RUT consultado. Para una sociedad, son las personas y sociedades relacionadas con ella: socios, accionistas u otros roles (ver tipos). Para una persona natural, son las sociedades en las que participa.
  • Nivel n + 1: se expanden las relaciones vigentes del nivel n:
    • Una sociedad se expande hacia sus socios.
    • Una persona natural se expande hacia las otras sociedades en las que participa, pero solo en el modo ampliada. En el modo beneficiariosFinales (por defecto), las personas naturales son el extremo de cada rama.
  • Las relaciones no vigentes (ex-socios) se listan en su nivel con vigente: false, pero la malla no se expande a partir de ellas.
  • Cada relación aparece una sola vez, en el nivel más cercano al RUT consultado.
  • La profundidad máxima es de 50 niveles y cada página trae hasta 100 relaciones.
  • El recorrido tiene un límite de tiempo y de tamaño. Si una malla muy extensa lo supera, la respuesta indica truncada: true (ver Mallas truncadas).

Detalle de API​

Request​

  • URL: /helper/legal/{rut}/capasMallaSocietaria?nivel={nivel}&page={page}&modo={modo}
  • Método: GET

Parámetros de ruta (path)​

ValorTipoEs requeridoDescripción
rutstringSíRUT a consultar, en formato "12345678-9".

Parámetros de consulta (query)​

ValorTipoEs requeridoDescripción
nivelnumberNoNivel de la malla a consultar. Entero entre 1 y 50. Por defecto 1.
pagenumberNoPágina del nivel solicitado. Entero mayor o igual a 1. Por defecto 1.
modostringNoForma de recorrer la malla: beneficiariosFinales (por defecto) o ampliada. Distingue mayúsculas y minúsculas.
ModoQué recorre
beneficiariosFinalesExpande solo las sociedades vigentes, hasta llegar a las personas naturales, que son el extremo de cada rama.
ampliadaLo mismo que beneficiariosFinales y, además, expande a cada persona natural vigente hacia las otras sociedades en las que participa. Así muestra la red de sociedades relacionadas.

Ejemplo request con curl​

curl -X 'GET' \
'https://prod.api.thesheriff.cl/api/clients/v3/helper/legal/76123456-0/capasMallaSocietaria?nivel=1&page=1&modo=beneficiariosFinales' \
-H 'accept: application/json' \
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9EjemploDeToken123'

Response​

Diferencias por tipo de persona​

La estructura de la respuesta es la misma para personas naturales y jurídicas; lo que cambia es el contenido del nivel 1:

Campo del nivel 1Persona jurídicaPersona natural
rutSocio / nombreSocioCada socio o accionista de la sociedad consultadaLa persona consultada
rutSociedad / nombreSociedadLa sociedad consultadaCada sociedad en la que participa la persona
nombre (en data)Razón social de la sociedadNombre de la persona

Respuesta para persona jurídica​

Success

  • Status code: 200

  • Example response body:

    {
    "success": true,
    "data": {
    "rut": "76123456-0",
    "nombre": "EMPRESA FICTICIA SPA",
    "modo": "beneficiariosFinales",
    "truncada": false,
    "nivel": 1,
    "siguienteNivel": true,
    "page": 1,
    "totalPages": 1,
    "cantidad": 2,
    "relaciones": [
    {
    "nivel": 1,
    "rutSocio": "11111111-1",
    "nombreSocio": "SOCIO FICTICIO UNO",
    "rutSociedad": "76123456-0",
    "nombreSociedad": "EMPRESA FICTICIA SPA",
    "porcentaje": 70,
    "vigente": true,
    "tipos": ["SOCIO"]
    },
    {
    "nivel": 1,
    "rutSocio": "22222222-2",
    "nombreSocio": "HOLDING FICTICIO LTDA",
    "rutSociedad": "76123456-0",
    "nombreSociedad": "EMPRESA FICTICIA SPA",
    "porcentaje": 30,
    "vigente": true,
    "tipos": ["SOCIO", "ADMINISTRADOR"]
    }
    ],
    "ultimaActualizacion": "15-08-2026 13:45:10"
    }
    }

    En el ejemplo, HOLDING FICTICIO LTDA es una sociedad vigente, por lo que sus socios aparecen al consultar nivel=2. SOCIO FICTICIO UNO es una persona natural: en el modo beneficiariosFinales no se expande, y en el modo ampliada sus otras sociedades aparecen en nivel=2.

Respuesta para persona natural​

Para una persona natural, el nivel 1 son las sociedades en las que participa: en cada relación, rutSocio es la persona consultada y rutSociedad es la sociedad. En el nivel 2 aparecen los demás socios de esas sociedades.

Success

  • Status code: 200

  • Example response body:

    {
    "success": true,
    "data": {
    "rut": "11111111-1",
    "nombre": "SOCIO FICTICIO UNO",
    "modo": "beneficiariosFinales",
    "truncada": false,
    "nivel": 1,
    "siguienteNivel": true,
    "page": 1,
    "totalPages": 1,
    "cantidad": 2,
    "relaciones": [
    {
    "nivel": 1,
    "rutSocio": "11111111-1",
    "nombreSocio": "SOCIO FICTICIO UNO",
    "rutSociedad": "76123456-0",
    "nombreSociedad": "EMPRESA FICTICIA SPA",
    "porcentaje": 70,
    "vigente": true,
    "tipos": ["SOCIO", "ADMINISTRADOR"]
    },
    {
    "nivel": 1,
    "rutSocio": "11111111-1",
    "nombreSocio": "SOCIO FICTICIO UNO",
    "rutSociedad": "77777777-7",
    "nombreSociedad": "INVERSIONES FICTICIAS LIMITADA",
    "porcentaje": 40,
    "vigente": true,
    "tipos": ["SOCIO"]
    }
    ],
    "ultimaActualizacion": "15-08-2026 13:45:10"
    }
    }

Respuesta sin relaciones​

Un RUT sin relaciones registradas responde 200 con la malla vacía, no 404. Lo mismo ocurre al pedir un nivel sin relaciones o una page mayor que totalPages:

{
"success": true,
"data": {
"rut": "76123456-0",
"nombre": null,
"modo": "beneficiariosFinales",
"truncada": false,
"nivel": 1,
"siguienteNivel": false,
"page": 1,
"totalPages": 0,
"cantidad": 0,
"relaciones": [],
"ultimaActualizacion": null
}
}

Campos de la respuesta​

Los campos son los mismos para personas naturales y jurídicas; solo cambia el contenido del nivel 1 (ver Diferencias por tipo de persona).

CampoTipoDescripción
successboolIndica si la operación fue exitosa.
dataobjectNivel solicitado de la malla societaria, paginado.

Campos dentro de data:

CampoTipoDescripción
rutstringRUT consultado, normalizado sin puntos (formato "12345678-9").
nombrestringRazón social o nombre del RUT consultado; null si no está en las fuentes legales.
modostringModo de recorrido usado: "beneficiariosFinales" o "ampliada".
truncadabooleantrue si el recorrido se interrumpió antes de completar el nivel solicitado o el siguiente (ver Mallas truncadas).
nivelnumberNivel devuelto en esta respuesta.
siguienteNivelbooleantrue si el nivel nivel + 1 tiene relaciones.
pagenumberPágina devuelta.
totalPagesnumberCantidad de páginas del nivel solicitado (100 relaciones por página).
cantidadnumberCantidad total de relaciones del nivel solicitado.
relacionesarrayRelaciones de la página solicitada (ver campos anidados).
ultimaActualizacionstringFecha y hora de la última actualización del ayudante Legal (formato "DD-MM-YYYY HH:mm:ss"); null si no hay registro.

Campos dentro de cada elemento de relaciones:

CampoTipoDescripción
nivelnumberNivel en el que aparece la relación.
rutSociostringRUT de quien participa (persona o sociedad).
nombreSociostringNombre o razón social de quien participa; puede ser null.
rutSociedadstringRUT de la sociedad participada.
nombreSociedadstringRazón social de la sociedad participada; puede ser null.
porcentajenumberPorcentaje de participación, con hasta 2 decimales (ej: 70); null si no se informa.
vigentebooleantrue si la relación sigue vigente; false para ex-socios.
tiposarrayRoles de quien participa en la sociedad (ej: ["SOCIO", "ADMINISTRADOR"]).

En cada nivel, las relaciones se ordenan con las vigentes primero y luego por porcentaje de participación, de mayor a menor. Las que no informan porcentaje van al final.

Recorrer toda la malla
  1. Consulta Niveles de la Malla Societaria con el mismo modo para obtener nivelesDisponibles.
  2. Para cada nivel, recorre page desde 1 hasta totalPages.
  3. Usa el mismo modo en todas las consultas: cada modo produce niveles distintos.

Mallas truncadas​

Para responder en un tiempo acotado, el recorrido se detiene al superar los 30 segundos de procesamiento o las 50.000 entidades visitadas, o al llegar al nivel 50 con relaciones por recorrer. Cuando esto ocurre:

  • truncada viene en true.
  • Si se superó el tiempo, el nivel que estaba en proceso no se entrega a medias: viaja sin relaciones.
  • Si se superó el tamaño, el nivel siguiente se arma solo con parte de las sociedades y puede traer relaciones incompletas.
  • Los niveles anteriores al corte se entregan completos.

Si recibes truncada: true, considera la malla parcial a partir del nivel que no alcanzó a completarse. Las mallas en modo ampliada son más extensas y tienen más probabilidad de truncarse.

Errores​

Además de los errores comunes y los de acceso al RUT, este endpoint puede responder:

400 - Parámetros inválidos​

Algún parámetro de la ruta o de la consulta no es válido. El mensaje indica el parámetro rechazado; si hay más de uno, los mensajes vienen uno a continuación del otro, separados por un espacio. Corrige los parámetros indicados y vuelve a enviar la solicitud.

Cuándo ocurreMensaje en error
RUT con formato o dígito verificador inválidoEl RUT ingresado no es válido. Por favor verifica el formato.
nivel no numéricoEl campo 'nivel' debe ser un número.
nivel decimalEl campo 'nivel' debe ser un número entero.
nivel menor a 1El campo 'nivel' debe ser mayor o igual a 1.
nivel mayor a 50El campo 'nivel' debe ser menor o igual a 50.
page menor a 1El campo 'page' debe ser mayor o igual a 1.
modo inválidoEl campo 'modo' debe ser uno de: [beneficiariosFinales, ampliada].
{
"success": false,
"code": 400,
"error": "El campo 'nivel' debe ser menor o igual a 50."
}

401 - No autorizado​

El token no se envió, expiró o no es válido (ver Errores de autenticación). Si expiró, solicita uno nuevo en Obtener Token.

{
"success": false,
"code": 401,
"error": "El token de autenticación no es válido."
}

403 - RUT sin acceso​

El RUT existe en Sheriff, pero no está cargado en tu cuenta. Cárgalo con Carga de RUT antes de consultarlo.

{
"success": false,
"code": 403,
"error": "No tienes permisos para consultar este RUT."
}

Tu plan no incluye el ayudante Legal.

{
"success": false,
"code": 403,
"error": "El plan no cuenta con el ayudante legal."
}

404 - RUT no encontrado​

El RUT no existe en Sheriff. Cárgalo con Carga de RUT antes de consultarlo.

{
"success": false,
"code": 404,
"error": "El RUT consultado no existe en el sistema."
}

429 - Demasiadas solicitudes​

Superaste el límite de solicitudes (ver Rate Limits). Espera los segundos que indica el header Retry-After antes de reintentar.

{
"success": false,
"code": 429,
"error": "Demasiadas solicitudes desde esta API externa, intente más tarde."
}

500 - Error interno del servidor​

Ocurrió un error inesperado. Intenta nuevamente más tarde.

{
"success": false,
"code": 500,
"error": "Ocurrió un error interno. Intenta nuevamente más tarde."
}